#include	<stdio.h>
#include    <stdlib.h>
#include	<utmp.h>
#include	<fcntl.h>
#include	<unistd.h>

#define	SHOWHOST	

int show_info( struct utmp *utbufp )
{
	printf("%-8.8s", utbufp->ut_name);	
	printf(" ");				
	printf("%-8.8s", utbufp->ut_line);	
	printf(" ");				
	printf("%10ld", utbufp->ut_time);	
	printf(" ");				
		#ifdef	SHOWHOST
	printf("(%s)", utbufp->ut_host);	
#endif
	printf("\n");
	return 0;								}
	int main()				
	{
	struct utmp	 current_record;	
	int		utmpfd;		
	int		reclen = sizeof(current_record);
	if ( (utmpfd = open(UTMP_FILE, O_RDONLY)) == -1 ){
	perror( UTMP_FILE );				
	exit(1);						}
	while ( read(utmpfd, &current_record, reclen) == reclen )						
	show_info(&current_record)
	close(utmpfd);
	return 0;						}
